package com.fractalist.base.core.utils;

import java.math.BigDecimal;

/**
 * 算数工具类，做金钱上的运算
 * 
 * @author radio
 * 
 */
public class MathUtils {

	/**
	 * 相加方法
	 * 
	 * @param val1
	 *            加数
	 * @param val2
	 *            被加数
	 * @return
	 */
	public static final BigDecimal add(BigDecimal v1, BigDecimal v2) {
		return v1.add(v2).setScale(2, BigDecimal.ROUND_HALF_EVEN);
	}

	/**
	 * 相减方法
	 * 
	 * @param val1
	 *            减数
	 * @param val2
	 *            被减数
	 * @return
	 */
	public static final BigDecimal sub(BigDecimal v1, BigDecimal v2) {
		return v1.subtract(v2).setScale(2, BigDecimal.ROUND_HALF_EVEN);
	}

	/**
	 * 相乘方法
	 * 
	 * @param val1
	 *            乘数
	 * @param val2
	 *            被乘数
	 * @return
	 */
	public static final BigDecimal multiply(BigDecimal v1, BigDecimal v2) {
		return v1.multiply(v2).setScale(2, BigDecimal.ROUND_HALF_EVEN);
	}

	/**
	 * 把传入的数字四舍五入，保留小数点后两位
	 * 
	 * @param number
	 * @return
	 */
	public static final double rounding(double number) {
		BigDecimal bd = new BigDecimal(number);
		return bd.setScale(4, BigDecimal.ROUND_HALF_EVEN).doubleValue();
	}

}
